<!DOCTYPE html>
<html lang="en">
<head>
    <meta charset="UTF-8">
    <title>3执行上下文栈</title>
</head>
<body>
栈的结构(特点): 后进先出(可以看执行上下文栈2.png)

1. 在全局代码执行前，JS引擎就会创建一个栈来存储管理所有的执行上下文对象
2. 在全局执行上下文(window)确定后，将其添加到栈中(压栈)
3. 在函数执行上下文创建后，将其添加至栈中(压栈)
4. 在当前函数执行完后，将栈顶的对象移除(出栈)
5. 当所有的代码执行完后，栈中只剩下window
<script type='text/javascript'>
var a = 10;
var bar = function (x) {
    var b = 5;
    foo(x + b);
}
var foo = function (y) {
    var c = 5;
    console.log(a + c + y);
}
bar(10)
</script>
</body>
</html>